import { defineConfig, loadEnv } from "vite";
import uniPlugin from "@dcloudio/vite-plugin-uni";
// 生成 pages.json 的插件
import UniPages from '@uni-helper/vite-plugin-uni-pages'
// 生成 manifest.json 的插件
import UniManifest from '@uni-helper/vite-plugin-uni-manifest'
// 路径处理
import path from 'node:path'
import process from 'node:process'

// 兼容 ESM 模式下的默认导出
const uni = typeof uniPlugin === 'function' ? uniPlugin : uniPlugin.default || uniPlugin;

// https://vitejs.dev/config/
export default defineConfig(({ command, mode }) => {
  const env = loadEnv(mode, process.cwd());
  const {
    VITE_DEFAULT_PAGE,
  } = env;
  console.log('当前环境变量： ', env);
  return defineConfig({
    plugins: [
      UniPages({
        /**
         * 输出 pages.json 目录
         * @default "src"
         */
        outDir: 'src',
        /**
         * subPackages 扫描的目录，例如：src/pages-sub
         */
        subPackages: [
          'src/pages-sub'
        ],
        /**
         * 设置默认路由入口
         * @default 'pages/index' || 'pages/index/index'
         */
        homePage: VITE_DEFAULT_PAGE || 'pages/index/index',
        /**
         * 为页面路径生成 TypeScript 声明
         *
         * 接受布尔值或与相对项目根目录的路径
         *
         * 默认为 uni-pages.d.ts
         *
         * @default true
         */
        dts: 'src/types/uni-pages.d.ts',
      }),
      UniManifest(),
      uni()
    ],
    resolve: {
      alias: {
        '@': path.resolve(process.cwd(), './src'),
      }
    },
  });
});
